<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 箭头函数有一些自己的特点（优势）

    // let fn = function() {
    //   return 9 + 10
    // } 
    // console.log( fn() )

    // let fn = () => {
    //   return 9 + 10
    // } 
    // console.log( fn() )

    // 当前函数体只有一行， 并且我们希望吧内容返回出去, 就可以写一种简写
    // let fn = () => 19 + 10
    // console.log( fn() )


    //  如果只有一个参数，可以吧小括号取消
    // let fn = n => 19 + 10 + n
  
    // console.log( fn(8, 10) )

    // 普通函数的this， 永远指向调用者
    // 构造函数， 永远指向当前实例（对象）

    // 箭头函数,没有自己的this,永远指向当前箭头函数所在环境的 this

    // function fn() {
    //   console.log(111, this)

    //   let test = () => console.log(222, this)

    //   test()
    // }

    // // fn()  // window.fn()

    // let obj = {address: '成都'}
    // fn.call(obj)  // obj


    var a = 123

    // let obj = {
    //   a: 456,
    //   fn: function() {
    //     console.log( this.a )
    //   }
    // }
    let obj = {
      a: 456,
      fn: () => {
        console.log( this.a )
      }
    }

    obj.fn()


  </script>
</body>
</html>